Since widespread use of integrated circuits began in the 1960's, the demand for data communications equipment has increased rapidly throughout the world. As more and more businesses, and even homes, came to rely on low cost computers, there arose a growing need for data communication devices, commonly known as modems, which could be used over dial up voice grade telephone lines.
It is known to those skilled in the art that it is highly desirable to use microprocessors in implementing modems. Microprocessors are now commonly used to implement a number of different functions within a modem. It is also known to those skilled in the art that microprocessors require memories for the storage and retrieval of operating instructions and data. Several different types of memories are currently used with microprocessors: read only memories (ROM), ultraviolet light erasable and electrically programmable read only memories (UVPROM), electrically erasable and programmable read only memories (EEPROM), also sometimes referred to as nonvolatile random access memories (NVRAM, NOVRAM), static random access memories (SRAM), and dynamic random access memories (DRAM).
In modems, the memory components typically comprise a UVPROM for the storage and retrieval of operating instructions, and EEPROM for the storage and retrieval of modem operating parameters and other data such as telephone numbers, and either a SRAM or a DRAM for the temporary storage and retrieval of data. SRAMs do not require refreshing of the memory, however, SRAMs are typically priced higher than DRAMs of the same memory capacity. DRAMs tend to be physically smaller and have a lower package pin count than SRAMs due to the multiplexing of the address lines. However, DRAMs require that the memory be periodically refreshed or the data will be lost.
Some microprocessors do not directly support the refresh operation and therefore a separate circuit is required to accomplish refreshing of the DRAMs. Other microprocessors directly support the refresh operation but can directly refresh only a portion of the memory which is available to the microprocessor. An example of such a microprocessor is the Z84C00 microprocessor, manufactured by Zilog, Campbell, California. Details of operation of the Z84C00 microprocessor have been published by the manufacturer and are available from the manufacturer upon request.
Therefore, there is a need for a simple circuit, which can be used with a microprocessor having a limited refresh capability, which will provide for refreshing of the entire memory available to the microprocessor.
Many circuits involving microprocessors use both a UVPROM and a random access memory (RAM), the RAM being either a DRAM or a SRAM. In many operations it is desirable to read the contents of the read only memory (ROM), write the contents into the RAM, and thereafter use only the RAM so that the ROM can be placed in a standby mode where it consumes less power. Typically, in order to accomplish the transfer of the contents from the ROM to the RAM the microprocessor places a first address on the address lines, reads the contents of that address from the ROM, places a second address on the address lines, writes the contents into the RAM, and so on until the contents of the ROM have been transferred to the RAM. The process of changing the address from the address required for the ROM to the address required for the RAM and vice versa, requires additional time and therefore slows the operation of the microprocessor.
Therefore, there is a need for a circuit which allows the ROM and RAM to exist, without conflict, at the same address so that the address does not have to be changed when switching from the ROM to the RAM.
In microprocessor circuits which also use an EEPROM, and in which the microprocessor memory space is completely allocated to ROM and RAM memory, the EEPROM is frequently mapped into the input/output (I/O) space. Other devices are also mapped into the I/O space and therefore some of the address lines are used to designate the EEPROM or another device, and some or all of the remaining lines are used to select the location of the desired data. At least one EEPROM device allows the transfer of a string of data, often referred to as a page of data, by simply incrementing the location of the desired data. However, care must be taken, and extra program steps are usually required, in order to prevent the incrementing process from affecting the address lines used to designate the particular device. The data transfer would be speeded up in the extra program steps could be removed so that the microporcessor could operate more efficiently. Therefore, there is a need for a circuit which allows connecting EEPROM's and other I/O devices to the microprocessor in such a manner that the extra program steps can be removed.